IF exists(SELECT * FROM dbo.sysobjects WHERE name='alleIndividueleLeraarsVakcodes' AND xtype='FN') 
BEGIN
	DROP FUNCTION alleIndividueleLeraarsVakcodes
END
GO

CREATE     function alleIndividueleLeraarsVakcodes(@iNr char(7))
returns @resultaten table(
   volgnummer char(2),
   naamcode char(4),
   volleNaam varchar(50),
   vakcode char(2),
   vakNaam varchar(50))
as
begin
declare @groepen table (groepscode varchar(5))
declare @klas varchar(5)

-- De klas wordt opgezocht
set @klas = ''

select @klas = leerlingen.dbo.WEB_klasNaam(@iNr)

-- De vakken per klas worden ingevuld:

insert into @resultaten(volgNummer,naamcode,volleNaam,vakcode,vaknaam)
select distinct v.volgnummer,a.naamcode,isNull(l.voornaam,'') + ' ' + isNull(l.achternaam,''),
			v.vakcode,v.vaknaam
  from leraars..ambtsverdeling as a
  left join leraars..vakvolgorde as v
	on v.vakcode = a.vakcode
  left join leraars..leraars as l
	on a.naamcode = l.naamcode
  where a.klas = @klas
	and v.vakcode is not null
  order by v.volgnummer  

-- De seminariegroepen worden ingevuld:

insert into @groepen(groepscode)
select distinct groepscode
  from leerlingen..seminariegroepen
  where inschrijvingsNr in 
		(select inschrijvingsNr 
			from leerlingen..leerlingen 
			where klas like @klas)

insert into @resultaten(volgNummer,naamcode,volleNaam,vakcode)
select distinct l.vakvolgorde,ler.naamcode,
  	isNull(ler.voornaam,'') + ' ' + isNull(ler.achternaam,''),s.vakcode
			
  from leerlingen..seminarienamen as s
	left join leraars..seminarieLeraars as l
		on s.groepscode = l.groepscode
	left join leraars..leraars as ler
		on l.naamcode=ler.naamcode
  where s.groepscode in 
          (select groepscode from leerlingen..seminariegroepen
        	   where inschrijvingsNr = @iNr)

update @resultaten
set vaknaam = sn.vaknaam
   from @resultaten as v	
	left join leerlingen..seminarieNamen as sn
	  on v.vakcode = sn.vakcode
	right join (select groepscode from leerlingen..seminariegroepen
        	   where inschrijvingsNr = @iNr) as sg
	  on sg.groepscode = sn.groepscode
	where sn.vakcode is not null
return

end